package br.com.bb.cslsp.modelo.bem.vendabem;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Calendar;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import br.com.bb.cslsp.modelo.dependencia.Dependencia;
import br.com.bb.cslsp.modelo.funcionario.Funcionario;

@Entity
@Table(name = "vb_bemselecionado", schema = "apps")
@NamedQueries({ 
	@NamedQuery(name = "BemSelecionado.buscaPorPrefixoSB", query = "select b from BemSelecionado b where b.dependencia.prefixo = :prefixo and b.dependencia.sb = :sb"), 
	@NamedQuery(name = "BemSelecionado.buscaPorDependencia", query = "select b from BemSelecionado b where b.dependencia = :dependencia"), 
	})
public class BemSelecionado implements Serializable {

	private static final long serialVersionUID = 1L;
	
	public static String BUSCA_POR_PREFIXO_SB = "BemSelecionado.buscaPorPrefixoSB";
	public static String BUSCA_POR_DEPENDENCIA = "BemSelecionado.buscaPorDependencia";

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long id;

	private Long numeroBem;
	private String descricao;
	private BigDecimal opiniaoValor;

	@Temporal(TemporalType.TIMESTAMP)
	private Calendar dataHoraInclusao;

	@ManyToOne
	private Funcionario funcionarioInclusao;

	@ManyToOne
	private Dependencia dependencia;

	@ManyToOne
	private PropostaVendaBem proposta;

	@ManyToOne
	private ProcessoVendaBem processo;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getNumeroBem() {
		return numeroBem;
	}

	public void setNumeroBem(Long numeroBem) {
		this.numeroBem = numeroBem;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public BigDecimal getOpiniaoValor() {
		return opiniaoValor;
	}

	public void setOpiniaoValor(BigDecimal opiniaoValor) {
		this.opiniaoValor = opiniaoValor;
	}

	public Calendar getDataHoraInclusao() {
		return dataHoraInclusao;
	}

	public void setDataHoraInclusao(Calendar dataHoraInclusao) {
		this.dataHoraInclusao = dataHoraInclusao;
	}

	public Funcionario getFuncionarioInclusao() {
		return funcionarioInclusao;
	}

	public void setFuncionarioInclusao(Funcionario funcionarioInclusao) {
		this.funcionarioInclusao = funcionarioInclusao;
	}

	public Dependencia getDependencia() {
		return dependencia;
	}

	public void setDependencia(Dependencia dependencia) {
		this.dependencia = dependencia;
	}

	public PropostaVendaBem getProposta() {
		return proposta;
	}

	public void setProposta(PropostaVendaBem proposta) {
		this.proposta = proposta;
	}

	public ProcessoVendaBem getProcesso() {
		return processo;
	}

	public void setProcesso(ProcessoVendaBem processo) {
		this.processo = processo;
	}

}
